A computer network generally includes a number of interconnected network devices. Large networks, such as the Internet, typically include a number of interconnected computer networks, which in this context are often referred to as sub-networks or subnets. These subnets are each assigned a range of network addresses that can be allocated to the individual network devices that reside in the respective subnet. A server or other device in each subnet may be responsible for allocating these network addresses in accordance with a network address allocation protocol, such as a dynamic host configuration protocol (DHCP).
In some cases, a network connection may be provided with a high availability service. Another term used to describe high availability is uninterrupted service. Uninterrupted service continuity is very important in Internet environments. Typically, high availability services are provided by checkpointing data of a network connection, such as network session state data (e.g., current synchronization number, current acknowledgement number, etc.).
Such services are provided by deploying active-backup pairs of devices in a system. That is, a primary device checkpoints data of a network connection to a backup device such that, in the event that the primary device is taken down (e.g., fails or is voluntarily taken offline), the backup device can resume participation in the network connection, to avoid premature termination of the network connection. Relatively long-lived network connections are typically provided high availability services, whereas such services are typically not provided to relatively short-lived network connections. For some stateful services, such as network address translation (NAT), a state is created per packet flow, and this state is checkpointed from the primary device to the backup device for high availability.